package com.cloud.sysmana.entity.dao.impl;

import java.util.List;

import com.cloud.sysmana.entity.SysRole;
import com.cloud.sysmana.entity.dao.ISysRoleDao;
import com.cloud.util.base.BaseHibernateDao;
import com.cloud.util.page.PageInfo;

import config.SysConfig;

/**
 * 系统角色Dao
 * @author gaof
 * @date 2016年4月26日
 */
public class SysRoleDao extends BaseHibernateDao<SysRole, Integer> implements ISysRoleDao {

	/**
	 * 保存或更新系统角色
	 * @param role
	 */
	@Override
	public void saveOrUpdateRole(SysRole role) {
		this.updateEntity(role);
	}

	/**
	 * 获取最大角色编号
	 * @param roleNoPre
	 * @return
	 */
	@Override
	public Object getMaxRoleNoByPre(String roleNoPre) {
		return this.getSQLQueryOne("SELECT MAX(role_no) FROM sys_role WHERE role_no like '" + roleNoPre + "%'");
	}

	/**
	 * 获取系统角色分页数据
	 * @param pageInfo
	 * @return
	 */
	@Override
	public PageInfo listRolePage(PageInfo pageInfo) {
		
		String hsql = "FROM SysRole";
		String countSql = "SELECT COUNT(*) FROM SysRole";
		
		pageInfo.setTotalCountHbSQL(countSql);
		pageInfo.setListHbSql(hsql);
		
		return pageInfo;
	}

	/**
	 * 通过角色id获取角色信息
	 * @param id
	 * @return
	 */
	@Override
	public SysRole getRoleById(Integer id) {
		return this.findById(id);
	}

	/**
	 * 删除用户角色
	 * @param role
	 */
	@Override
	public void delRole(SysRole role) {
		this.deleteEntity(role);
	}

	@Override
	public List getRoleIdByUserId(int userId) {
		// TODO Auto-generated method stub
		String sqlString="select u.role_id from sys_user_role u where u.user_id="+userId;
		return this.getSQLQuery(sqlString);
	}
	
}
